package com.joolun.common.utils;

import org.apache.commons.lang3.time.DateFormatUtils;

import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.UUID;

public class FileUtil {
    public static String suffix(String fileName){
        if(null == fileName || "".equals(fileName)) {
            return "";
        }
        if(!fileName.contains(".")) {
            return "";
        }
        return fileName.substring(fileName.lastIndexOf(".")+1);
    }



    public static String getUploadPath(String fileName){
        String datePath = DateFormatUtils.format(new Date(), "yyyy/MM/dd/");
        return datePath + uuid() + "." + suffix(fileName);
    }

    public static String getUploadDir(){
        return DateFormatUtils.format(new Date(), "yyyy/MM/dd/");
    }

    public static void createFileWithDir(String filePath) {
        File file = new File(filePath);
        if (file.exists()) {
            System.out.println("路径已存在，无需创建。");
            return;
        }

        // 获取父目录并创建所有不存在的目录
        File parentDir = file.getParentFile();
        if (parentDir != null) {
            parentDir.mkdirs(); // 创建所有缺失的父目录
        }

        try {
            if (file.createNewFile()) {
                System.out.println("文件创建成功：" + file.getAbsolutePath());
            } else {
                System.out.println("文件创建失败，可能已存在或权限不足。");
            }
        } catch (IOException e) {
            System.err.println("创建文件时发生错误：" + e.getMessage());
        }
    }

    public static Boolean createParentDir(String filePath){
        try {
            File dir = new File(filePath);
            if(!dir.exists()){
                dir.mkdirs();//创建目录
            }
//            File f = new File(filePath,fileName);
//            if(!f.exists()){
//                f.createNewFile();
//                return true;
//            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }

    /**
     * 获取无下划线uuid
     *
     * @return
     */

    public static String uuid() {
        return UUID.randomUUID().toString().replaceAll("\\-", "").toLowerCase();
    }

//    public static void main(String[] args) {
////        System.out.println(suffix("aaa.png"));
////        System.out.println(getName("aaa.jpg"));
//    }
}
